-
-
Notifications
You must be signed in to change notification settings - Fork 1
feat: add update available notification #151
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add a "new version available" notification that displays after CLI commands. The notification appears when a newer version is detected on GitHub releases. Key features: - Probabilistic background check (~once per day) that doesn't block execution - Cached version info in SQLite metadata table for instant notifications - Suppressed for upgrade, --version, -V, and --json flags - Opt-out via SENTRY_CLI_NO_UPDATE_CHECK=1 environment variable - Errors reported to Sentry via detached span for visibility - Node.js polyfill for Bun.semver using semver package
Semver Impact of This PR🟡 Minor (new features) 📋 Changelog PreviewThis is how your changes will appear in the changelog. New Features ✨
Bug Fixes 🐛
Documentation 📚
🤖 This preview updates automatically when you update the PR. |
Codecov Results 📊✅ Patch coverage is 82.24%. Project has 2027 uncovered lines. Files with missing lines (27)
Coverage diff@@ Coverage Diff @@
## main #PR +/-##
==========================================
+ Coverage 68.08% 68.30% +0.22%
==========================================
Files 53 55 +2
Lines 6290 6395 +105
Branches 0 0 —
==========================================
+ Hits 4282 4368 +86
- Misses 2008 2027 +19
- Partials 0 0 —Generated by Codecov Action |
- Export shouldCheckForUpdate for direct testing - Add tests for probabilistic check behavior - Add tests for getUpdateNotification with different DB states - Add test for opt-out behavior via subprocess
- Simplify semver polyfill to shorthand syntax - Move --json into SUPPRESSED_ARGS Set - Bake getVersionCheckInfo() into shouldCheckForUpdate() - Refactor to async/await instead of .then().catch().finally() - Add AbortController for clean process exit - Pass signal to fetchLatestFromGitHub for cancellation support
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
- Wrap version check DB operations in try/catch to prevent CLI crashes - Report caught errors to Sentry for visibility - Remove unused semverSatisfies import and satisfies property from polyfill
Summary
Adds a "new version available" notification that displays after CLI commands complete, notifying users when a newer version is available on GitHub releases.
Key Features
upgrade,--version,-V, and--jsonflagsSENTRY_CLI_NO_UPDATE_CHECK=1environment variable to disable entirelyBun.semverusing thesemverpackageExample Output